class Solution {
    public int getMaxLen(int[] nums) {
        int n = nums.length;
        // 状态表示
        int[] f = new int[n + 1];
        int[] g = new int[n + 1];
        int ret = 0;
        for(int i = 1; i <= n; i++){
            if(nums[i - 1] > 0){
                f[i] = f[i - 1] + 1;
                g[i] = g[i - 1] == 0 ? 0 : g[i - 1] + 1;
            }else if(nums[i - 1] < 0){
                f[i] = g[i - 1] == 0 ? 0 : g[i - 1] + 1;
                g[i] = f[i - 1] + 1;
            }
            ret = Math.max(ret, f[i]);
        }
        return ret;
    }
}